HydroTrek_-_SWMM_Summary
Background
The Storm Water Management Model (SWMM) computation engine provided by EPA is a widely used component throughout the world for simulating sewer and storm water systems. The engine also comes with a pc-based graphical user interface that provides an extensive toolbox for creating, modifying and running a SWMM model. GQC provided some necessary enhancements to the SWMM 5 API to allow complete model simulations to run on Microsoft Azure's cloud. GQC also added the ability to run SWMM using parallel processing, which significantly improves run times in a virtual environment.
Functional Summary
HydroTrek-SWMM runs a SWMM5 planning model using data directly from local rain gauges. Historical runs can be made to perform in depth analysis of collection systems using both model and sensor data side by side. Real-time or “live” mode allows the model to be continually updated and refreshed with the latest rainfall so that the most up-to-date comparison between model and sensor data is available. Additionally, rainfall predictions are used to forecast the model into the future and allow for operational and strategic decision making. The software is designed to run on cloud and its engine can run fast even on large networks or for longer run times. Model results, as well as real-time sensor data throughout the network can be viewed from any device using any web browser. All data is securely stored in the cloud, and password protected.
Available documents:
Cloud based SWMM Architecture where subscriptions are located Link
Cloud based SWMM Architure Link
Bing map application data sources IDEF0 Link
SWMM Sequence Diagram for Live Dashboard Link
Cloud-Based SWMM Link
SWMM Live Dashboard Play Sequence Diagram Link
LMR Link
Cloud-based SWMM5 Data Relationships Link
SWMM5 Overview Link
SWMM5 WorkerRole Flowchart Link
Stormwater Calculator INP Analysis Link
SWMM5 Play Link
Azure SWMM5 Performance Tuning Link
IDEF0 Radar Immage Animation Link
SWMM5AzureWorker WorkerRole.cs Runs() Link
Current Design for SWMM5 Initlaization of a live chart and adding a sensor data point Link
Radar Image Animation Flowchart Link
LMSD Project Workflow Link
SWMM Design IDEF0 Link
Palo Alto Stormwater Calculator IDEFO Link
Cloud based SWMM Architure with code locations Link
Radar Image Storage Flowchart Link
Software Components
- Custom build of EPA's SWMM5 engine to use parallel processing infrastructure provided by Microsoft Azure
- Microsoft Azure's worker role to run custom build of EPA's SWMM5 engine
- Microsoft Azure's web role to host the dashboard to see run results
- Microsoft Azure's worker role to download latest rainfall and radar images from NOAA
- Azure Storage Explorer by Neudesic
- Modern HTM5 browser
Infrastructure Components
- Microsoft Azure Table Storage
- Microsoft Azure Blob Storage
- Microsoft Azure Cloud Services
Code Repositories
Main folder in SVN - https://subversion.assembla.com/svn/gqcproject1/trunk/Swmm5
Azure Web-role - Swmm5\SWMM5_Azure\SWMM5_Azure.sln
Azure Worker - Swmm5\SWMM5AzureWorker\SWMM5AzureWorker.sln
SWMM5 C++ Wrapper - Swmm5_01\SWMM5_01.sln
Rainfall Storage - \Swmm5\RainfallStorage\RainfallStorage.sln
Visual Studio Projects
- SWMM_Engine_64 – Customized EPA SWMM5 project built for 64 bit machines
- swmm5_Parallel_64 – Supplemental project for SWMM_Engine_64 project which provides the multi-threading environment to run certain processes of SWMM_Engine_64 project
- SWMM_Bridge_64 – Wrapper to SWMM_Engine_64 project. This provides managed C++ access to API methods of SWMM_Engine_64 project
- SWMM5KendoMVCWeb – MVC 4 web dashboard project to project SWMM5 run results on a Bing map
- SWMM5_Worker – Class library which allows worker role project to run SWMM5 engine on the Microsoft Azure cloud
- RainfallCaptureWorker – Class library which allows worker role project to get observed and forecast rainfall from NOAA along with most latest Doppler imagery
- SWMM5_GQC_Library – Project library which contains definitions and declaration of various entities that are common two both SWMM5KendoMVCWeb, SWMM5_Worker and RainfallCaptureWorker projects
- SWMM5AzureWorker – Microsoft Azure worker role project which references SWMM5_Worker project
- SWMM5_Azure – Microsoft Azure web role project which references SWMM5KendoMVCWeb project
- RainfallStorage – Microsoft Azure worker role project which references RainfallCaptureWorker project
Deployment Summary
Client Key
Config
Web Role
Worker Role
Storage
Website
Web and worker role subscription owner Account
Storage subscription owner account
Package blob
lmc
Release
lmcweb
lmcworker
msdgc
arturoiitbiz.onmicrosoft.com
sudhirgqc535.onmicrosoft.com
lmsd
LMSDSpecial
lmsd
n/a
lmsd
arturoiitbiz.onmicrosoft.com
sudhirgqc535.onmicrosoft.com
rivershore
Release
rivershore
rivershoreworker
gqcstorage1
http://rivershore.cloudapp.net
arturoiitbiz.onmicrosoft.com
sudhirgqc535.onmicrosoft.com
Project
Worker Role
Storage
Worker Role subscription account
Storage subscription account
Package blob
rainfallstorage
rainbiz
Station table and radar-images blob in gqcstorage1
arturoiitbiz.onmicrosoft.com
sudhirgqc535.onmicrosoft.com
iitbiz subscriptions' gqcdeploy
1. Rainfall.ServiceConfiguration.Cloud.cscfg
2. RainfallStorage.cspkg
gqclog
all worker roles using Microsoft.Diagnostic Trace methods
gqclog container
depends on worker role
sudhirgqc535.onmicrosoft.com
Azure Tables and Blobs
Tables
Table Name
Description
Properties
Inputs
Stores the parameters for the run and the name of the input files
PartitionKey
rivershore
RowKey
scenario#
RunFlag
Boolean
StartTime
DateTime
EndTime
DateTime
TimeZone
Eastern Standard Time
ReportingTimeStep
15 (make sure to match the inp file)
InputFileName
name of the inp file uploaded to inputs table.
Sensors
Stores the sensor basic data
PartitionKey
Stage
RowKey
ccno#
location
lat,long
overflowlevel
integer
units
ft
LinkOutput
CSV values stored in Time series for the Link charts on the website
-
-
SubCatchOutput
CSV values stored in Time series for the Sub Catchment charts on the website
-
-
NodeOutput
CSV values stored in Time series for the Node charts on the website
-
-
SystemOutput
CSV values stored in Time series for the System chart on the website
-
-
Sensor Data
Stores all the details about the sensors: depth, head, volume, flow, velocity etc..
-
-
Runs
Stores the details and status of the run
Blobs
Blob Name
Description
rivershore-swmm-ouput
Contains all the SWMM results for each timestep
swmm-input
Upload the inp file for the run.